#ifndef CHARACTER_H
#define CHARACTER_H

#include <iostream>
#include <qwidget.h>
#include <qimage.h>
using namespace std;

class Character : public QWidget
{
public:
	Character(QWidget * parent = 0);
	Character(string iCharacterName, string iCharacterDescription, unsigned int iCharacterStrengthValue, unsigned int iCraftValue);
	virtual ~Character();

	// Getters
	inline string getName(void) const {return mName; };
	inline string getDescription(void) const {return mDescription; };
	inline unsigned int getStrengthValue(void) const {return mStrengthValue; };
	inline unsigned int getCraftValue(void) const {return mCraftValue; };

	// Setters
	inline void setName(const string iCharacterName) {mName = iCharacterName; };
	inline void setDescription (const string iCharacterDescription) {mDescription = iCharacterDescription; };
	inline void setCharacterStrengthValue(const unsigned int iCharacterStrengthValue) {mStrengthValue = iCharacterStrengthValue; };
	inline void setCharacterCraftValue(const unsigned int iCharacterCraftValue) {mCraftValue = iCharacterCraftValue; };
	virtual const QImage * getPicture(void) const;
	inline void setPicture(std::string iFileName) { picture.load(iFileName.c_str()); };

protected:

	QImage picture;
	virtual void paintEvent(QPaintEvent * event) override;

private:
	string mName;
	string mDescription;
	unsigned int mStrengthValue;
	unsigned int mCraftValue;
};

#endif